package com.zrwl.poscloud.xo.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.zrwl.poscloud.base.enums.EBusiType;
import com.zrwl.poscloud.commons.validator.annotion.NotBlank;
import com.zrwl.poscloud.commons.validator.group.Insert;
import com.zrwl.poscloud.commons.validator.group.Update;
import com.zrwl.poscloud.commons.vo.BaseVO;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

/**
 * IC卡片 VO类
 *
 * @author 刘思童 AutoGenerate
 * @date 2021-09-11
 */
@Data
public class ICCardInfoVO extends BaseVO<ICCardInfoVO> {
    @NotBlank(groups = {Insert.class, Update.class})
    private String cardSerialNumber;//卡内序列号
    private String printNumber;//印刷标记码
    private String name;//备注名称
    private String cardCode;
    private String cardUid;
    private String companyUid;
    private int useCount;
    private int payLevel;
    private int serverFlowCode;
    private int payFlowCode;
    private int rechargeFlowCode;
    private int netFlowCode;
    private int cardServerFlowCode;
    private int type;
    private double dayMax;
    private double feeAmt;
    private String feeUid;
    private double monthMax;
    private String pwd;

    private String employeeUid;
    private String employeeCode;
    private int employeeType;
    private String employeeName;
    private String companyCode;
    private String companyName;
    private double dailyLimit;
    private double monthlyLimit;
    private Date enterDate;
    private Date validDate;
    private String certCode;
    private String deptUid;
    private String deptName;


    private double rechargeAmt;
    private double payAmt;
    private double balanceAmt;
    private int balanceCount;
    private double subsidyBalanceAmt;

    private Date subsidyValidDate;

    private boolean writeCard;
    private String cardToolCode;
    private String cardSerialNumberHex;

    private boolean mustUsedCard;//必须是使用过的卡
    private String payName;//付款名称


    private double onLineAmt;
    private double offLineAmt;
    private double transferAmt;//转账金额
    private double secondBalanceAmt;//附属钱包金额
    private String toEmployeeUid;//转账接收人
    private String summary;

    private String ifCancelOpt;//是否是撤销操作
    private String oldData;//卡旧数据

    private CompanyBusinessFeeConfigVO feeConfig;
    private String feeConfigUid;
    private EBusiType eBusiType;
    private String[] deptRoleTree;
    private Double amount;
    private Double subAmount;
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date lastTradeTime;
    private String mobile;
}
